/*
 * ==========================================
 * DNS 攻击链前端开发工作周报
 * ==========================================
 */

// * ==========================================
// * 9.20-9.26
// * ==========================================
// * 在服务器上运行前端，固定运行在380端口，可以从外部通过202.117.43.253:30380直接访问。

// * 前端功能：
// - 配置文件
// - 自动编排功能
// - 保存和读取链结构功能

// * 前后端连接：
// - 向后端发送部署攻击链结构，测试连接
// - 修改数据发送路径，代理路径发送到3620端口，避免CORS问题
// - 新增开始攻击按键，向后端发送指令开始DNS攻击

// * 攻击效果展示：
// - 在2380端口部署接收服务器，后端把ssh消息发送到http://192.168.200.53:2380/api/ssh-logs
// - 前端攻击效果页面可以实时更新显示ssh信息
// ! (失败)
// - 在3620端口部署SSE端点，前端通过连接SSE端点获取后端推送的数据
// - 同上遇到CORS跨域请求问题，通过Vite代理解决


// * ==========================================
// * 9.27-10.3
// * ==========================================
// * 导入连接结构自动编排位置
// * 新增节点管理窗口收纳原有的节点管理功能

//* TODO: 画布占满整个屏幕，可以缩放，节点缩小，不需要详细展示前后端ip，鼠标放上去后显示所有后端
//* TODO: 控制栏放在下面横向，节点列表在右侧，节点可以拖拽放入画布.按钮颜色统一，不要花花绿绿

// ? 拓扑结构如何保存的？


// * ==========================================
// * 10.4-10.16
// * ==========================================
// * 调整页面布局，修改样式(背景，节点样式，菜单栏)
// * 修改画布，拓展到整个页面
// * 缩放，拖拽
// * 动画效果：选中动画
// * 拖拽部署
// * 请求速率实时变化曲线
// * 统计信息实时展示


// ==========================================
// TODO: 待办事项列表
// ==========================================

// TODO: 后端圆点优化
// 一个节点的后端可能有几十上百个，现在后端圆点非常多不够美观。
// 后端始终只显示一个圆点，画布上的节点标明有多少个后端
// 在节点内新增一个小按钮，点击后显示当前节点的后端列表
// 注明每个后端编号，ip，下一节点ip（如果已经连接，可能有多个）
// 每个后端可以点击进行选择，选择后在画布上拖拽连接就是连接选中的这个后端
// 鼠标置于后端圆点上显示当前选中的后端编号和ip

// TODO: 排序

// TODO: 自动编排连接到攻击目标

// ! 开始攻击无效？

// // 节点名称显示换行

// ? 开始攻击时传送根节点ip（？）

// ! bug：点击编辑节点后端展示有问题，只显示8个

// TODO: 后端归并：每个后端单独设置类型，默认求余

// // ssh日志：左对齐，最后一行和底部的距离

// // "空白画布"阻挡拖拽

// TODO: 后端归并交给后端，前端提供参数：归为几类


/*
 * ==========================================
 * Better Comments 语法说明：
 * ==========================================
 * // * 绿色 - 已完成的功能、重点内容
 * // TODO: 橙色 - 待办事项
 * // ! 红色 - 重要问题、错误、失败
 * // ? 蓝色 - 疑问、待确认
 * // // 灰色删除线 - 已完成或不需要的内容
 * ==========================================
 */

//* 节点序号徽章
//* 修改测试连接，不要发送测试链结构
//* TODO：发起攻击时传送根节点
//*纠正了自动编排功能，现在会自动把叶子节点连接到攻击目标
//*新增功能：开始攻击传送根节点ip
//*更新了从后端接收链结构自动部署的数据格式，现在会把连接到同一个下一层节点的所有后端使用一行记录传输。在画布上自动部署时，会自动把这些节点归并为一个后端圆点显示。
//*优化了自动部署节点布局，更加疏松、对称、美观。
10.23组会意见：
//* TODO：累计/qps显示清楚
//* TODO：攻击效果（删除展示），显示攻击目标信息
//* TODO：SSH日志标题？（什么日志？受害）
//* TODO：实时交互ssh窗口，可以输入命令（非紧急）
//* TODO：序号：n，后端：x个

//*修改了节点列表从服务器读取节点的数据格式，新增了额外参数。
//*新增了收起展开额外参数的功能，防止窗口过于冗长
//* todo:修改新增扫描任务，ip范围扫描，-范围“，”间隔
//* todo：任务名默认时间，任务描述默认任务名，时间等
//* todo：端口范围改成扫描源端口

//* todo：bug！鼠标拖出窗口窗口会关闭
//todo：进度条
//todo：默认端口范围太大

//* 新增了排序功能，可以让后端服务器节点列表按照指定顺序排序并直接读取
//* 分离出了攻击效果监控页面
//* 重构了测试节点监控页面

//* todo: 聚类：前端输入聚类数量，后端进行后端端口聚类，聚类信息直接保存在节点信息中
claude新功能，gpt5修改完善
新页面：
总控制台：可以总览当前各个阶段的情况（主页面，一定要漂亮好看抓人眼球）
节点页面：展示节点信息

测试床/实网两套系统（做一个切换按钮）

//* todo：ssh实时交互，可以输入命令（需要代理吗？）

//*新增自动编排参数和后端聚类参数配置选项
// ? 后端传递聚类方式：一类的一行发送
//* todo：聚类挪动到读取节点，参数框
// todo：设置攻击域名：开始攻击按键
// todo：攻击效果展示页面新加内容：？
//* todo：layout标准化重构前端
//* todo：页眉高度不一致
// todo：攻击链自动编排：筛选框：目标国家

^.*\.attack(\d{1,5})\.ns4\.48232025\.xyz$

a.attack1.ns4.48232025.xyz
a.attack2.ns4.48232025.xyz
a.attack3.ns4.48232025.xyz
a.attack4.ns4.48232025.xyz
a.attack5.ns4.48232025.xyz

a.attack{i}.ns4.48232025.xyz
i 1-10

开始攻击时传递根节点、域名，支持自增字段
//*聚类转移到读取节点，读取的节点信息带有聚类信息
DNS类攻击目标和非DNS类攻击目标区分开：部署攻击链指令不同，打击效果曲线DNS类没有A记录曲线
打击效果增加目标DNS解析器响应率（下降说明攻击有效）

主界面增加静态架构图，权威，受害，扫描，和攻击链静态示意图。三个服务器可以显示在线状态，点击跳转ssh界面。

整理画布，尽量囊括整个攻击链，自动归位被拖拽偏离的节点

//*态势感知
//* todo：删除攻击链页面未删除的攻击效果展示残留
//todo：扫描任务改动

//todo：传根节点可能有多个

//todo：切换效果评估页面会无法显示攻击效果

10000~60000-用户输入的值，随机挑一个
支持换行
任务详情ip过多时，小窗滚动，不要占用主页面空间

从后端更新任务列表：未提交和错误在本地保存，已提交需要从后端读取

每次连接服务器，从后端要ip，ip不固定

//*读取节点每个任务显示节点数量
//*读取节点任务过多添加滚动
//todo：删除读取任务？

webssh多个窗口独立，切换别的窗口已连接的窗口保持连接

扫描：粗粒度：一个范围，细粒度：选择后端返回的ip中的哪些结果。

//*实时速率曲线显示错误
广度扫描-深度扫描

layout：顶部栏展示项目名称，删除页面标题栏

测试床：开始攻击和部署攻击链带一个参数，决定是测试床还是实网。读取节点，自动编排采用新的接口。